package com.tengju.data.infrastructure.persistence.mybatis.mapper.clickhouse.user;

import com.tengju.data.domain.model.user.DominationLevelEnum;
import com.tengju.data.domain.model.user.IsDirect;
import com.tengju.data.domain.model.user.UserIdCode;
import com.tengju.data.infrastructure.persistence.mybatis.dataobject.DwdUserDominationDetailDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDominationDetailMapper {

    List<DwdUserDominationDetailDO> queryByIdCodes(@Param("idCodes") List<Long> idCodes);


    List<DwdUserDominationDetailDO> queryByPage(@Param("idCodes") List<Long> idCodes, @Param("starLevel") List<Integer> starLevel,
                                                @Param("dominationLevel") Integer dominationLevel, @Param("dominationId") Long dominationId,
                                                @Param("isDirect") Integer isDirect, @Param("orderBy") String orderBy,
                                                @Param("offset") Integer offset, @Param("limit") Integer limit);

    Integer countCustom(@Param("idCodes") List<Long> idCodes, @Param("starLevel") List<Integer> starLevel,
                        @Param("dominationLevel") Integer dominationLevel, @Param("dominationId") Long dominationId,
                        @Param("isDirect") Integer isDirect);

    List<Long> getCustomIdCode(@Param("idCodes") List<Long> idCodes, @Param("starLevel") List<Integer> starLevel,
                              @Param("dominationLevel") Integer dominationLevel, @Param("dominationId") Long dominationId,
                              @Param("isDirect") Integer isDirect);


}
